// pages/shop/erji//selectMendian/selectMendian.js
var base = require('../../../../base.js');  //路径可能做相应调整
const _ = base._; //翻译函数
const { getUserToken, getUserInfo } = require('../../../../lib/user.js')
const { URL } = require('../../../../lib/urls.js')
const { HTTP } = require('../../../../lib/http.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    _t: [],
    dataList: [],
    isShowNullView: false,
    latitude:0,
    longitude:0,
    productCode:"",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      _t: base._t(), //翻译
      productCode: options.productCode,
    });
    var that=this;
    wx.getLocation({
      type: 'gcj02',
      success: function (res) {
        console.log("当前坐标信息：", res)
        // var distance = that.distance(res.latitude, res.longitude, 39.918034, 116.415192);
        that.setData({
          latitude:res.latitude,
          longitude:res.longitude,
        })
        that.getNetDataList();
      },fail:function(){
        that.getNetDataList();
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  selectTap: function (e) {
    let index = e.currentTarget.dataset.index;//
    var item = this.data.dataList[index];
    //订单页面，选择收货地址
    var pages = getCurrentPages();//当前页面栈
    if (pages.length > 1) {
      var beforePage = pages[pages.length - 2];//获取上一个页面实例对象
      beforePage.setData({
        storeInfo: item,
      });//触发父页面中的方法
      beforePage.getNetOrderInfo();//获取订单金额信息
    }
    wx.navigateBack({
      delta: 1
    })
  },
  //获取可使用的优惠券列表
  getNetDataList: function () {
    var that = this;
    HTTP({
      url: URL.order.getStoreList,
      userToken: getUserToken(),
      data: {
        ProductCode: that.data.productCode,
        MemberId: getUserInfo().memberId,
      },
      success: (ress) => {
        var res = ress.Data;
        if (res.StoreInfos.length > 0) {
          var list=[];
          for(var i in res.StoreInfos){
            var model=res.StoreInfos[i];
            model.juli = that.distance(that.data.latitude, that.data.longitude, model.Lat, model.Lng)
            list.push(model)
          }
          that.setData({
            dataList: list,
            isShowNullView: false,
          })
        } else {
          this.setData({
            isShowNullView: true,
          })
        }
      },
      fail: (res) => {
        console.log(res)
        wx.showToast({
          title: res.msg,
          icon: 'none'
        })
      }
    })
  },
  /**
   * @creator 新猿意码
   * @data 2019/01/17
   * @desc 由经纬度计算两点之间的距离，la为latitude缩写，lo为longitude
   * @param la1 第一个坐标点的纬度
   * @param lo1 第一个坐标点的经度
   * @param la2 第二个坐标点的纬度
   * @param lo2 第二个坐标点的经度
   * @return (int)s   返回距离(单位千米或公里)
   * @tips 注意经度和纬度参数别传反了，一般经度为0~180、纬度为0~90
   * 具体算法不做解释，有兴趣可以了解一下球面两点之间最短距离的计算方式
   */
  distance: function (la1, lo1, la2, lo2) {
    var La1 = la1 * Math.PI / 180.0;
    var La2 = la2 * Math.PI / 180.0;
    var La3 = La1 - La2;
    var Lb3 = lo1 * Math.PI / 180.0 - lo2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(La3 / 2), 2) + Math.cos(La1) * Math.cos(La2) * Math.pow(Math.sin(Lb3 / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    s = s.toFixed(2);
    return s;
  },
})